package ustc.xiaoyang.karl.slidingwindows;

import java.util.HashMap;
import java.util.Map;

/**
 * 904.水果成篮
 */
public class ABasketOfFruits904 {
    public static void main(String[] args) {

        int [] fruits = {1,2,1};
        System.out.println(new ABasketOfFruits904().totalFruit(fruits));
    }
    public int totalFruit(int[] fruits){
        int left = 0;
        Map<Integer,Integer> map = new HashMap<>();
        int res = 0;
        for (int right = 0; right < fruits.length; right++) {
            map.put(fruits[right],map.getOrDefault(fruits[right],0)+1);
            while(map.size()>2){
                if (map.get(fruits[left])==1){
                    map.remove(fruits[left]);
                }else map.put(fruits[left],map.get(fruits[left])-1);
                left++;
            }
            int size = right-left+1;
            res = Math.max(res,size);
        }
        return res;
    }
}
